The pythoncapi-compat project can be used to write a C or C++ extension
supporting a wide range of Python versions with a single code base. It is made
of the pythoncapi_compat.h header file and the upgrade_pythoncapi.py script.
Provides
Requires
License
0BSD
Changelog
* Fri Oct 03 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20251003git97f1582-2
- Fix varargs indicator for `PyBytesWriter_Format`
* Fri Oct 03 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20251003git97f1582-1
- Update to 0^20251003git97f1582
- Fix compiler warnings for `PyBytesWriter_Format`
* Fri Sep 19 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250918gitab72af8-1
- Update to 0^20250918gitab72af8
- PEP 782: Add PyBytesWriter C API
* Mon Sep 01 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250901git90c06a4-1
- Update to 0^20250901git90c06a4
- Add `PyUnstable_Object_IsUniquelyReferenced`
* Sat Aug 09 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250809git5e31710-1
- Update to 0^20250809git5e31710
- Fixed a typo in a comment in `upgrade_pythoncapi.py`
* Tue Jun 24 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250624gitb541b98-1
- Update to 0^20250624gitb541b98
- Avoid `%T` format in error message
* Mon Jun 09 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250609gitffae0ff-1
- Update to 0^20250609gitffae0ff
- Add `PyUnicodeWriter_WriteASCII()`
* Tue Jun 03 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250603gitfde4d34-1
- Update to 0^20250603gitfd34d34
- Add `PySys_GetAttr()` function
* Tue Apr 15 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250414git0a8b2c5-1
- Update to 0^20250414git0a8b2c5
- upgrade_pythoncapi: try to preserve newlines when patching
* Tue Feb 18 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250218git632d1aa-1
- Update to 0^20250218git632d1aa
- Don't redefine `_Py_NULL` macro if already defined
* Tue Jan 28 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250128gitc84545f-1
- Update to 0^20250128gitc84545f
- Remove `PyConfig.use_system_logger`: it will only be available on Python
3.13.2 which is not released yet.
- Fix multiple definitions for `Py_fclose`
- Avoid `Py_ARRAY_LENGTH()` (because it fails with C++ on Python 3.9 on
macOS)
- Improve `test_config`
- Replace `extern` with `PyAPI_FUNC()`
* Mon Jan 20 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250119git8a52253-1
- Update to 0^20250119git8a52253
- Add `PyConfig_Get()`
- Optimize `PyWeakref_GetRef()`
* Mon Jan 06 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20250106git79404e9-1
- Update to 0^20250106git79404e9
- Add `Py_fopen()` and `Py_fclose()`
* Tue Dec 17 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20241216git7eb512b-1
- Update to 0^20241216git7eb512b
- Add `structmember.h` constants
* Fri Dec 13 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20241213git61709bf-1
- Update to 0^20241213git61709bf
- Add PyLong Import/Export API
* Fri Nov 15 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20241115git03e441d-1
- Update to 0^20241115git03e441d
- Add `PyLong_IsPositive`/`Negative`/`Zero()` functions
- Relax `PYPY_VERSION_NUM` requirements for hash macros
* Wed Oct 09 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20241009git669c882-1
- Update to 0^20241009git669c882
- Add `PyUnicode_Equal()` function
- Add `PyBytes_Join()` function
- Add `Py_HashBuffer()` function
- Add `PyIter_NextItem()` function
- Add `PyLong_FromUInt64()` and `PyLong_AsUInt64()`
* Wed Oct 09 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20241008gitbb0934e-1
- Update to 0^20241008gitbb0934e
- Document PyUnicodeWriter API
* Tue Sep 24 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240923gitd20d7f8-1
- Update to 0^20240923gitd20d7f8
- Fix incorrect use of assignment in place of an equality test.
* Mon Aug 26 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240826git2d18aec-1
- Update to 0^20240826git2d18aec
- Add critical section API
* Tue Aug 06 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240806git39e2663-1
- Update to 0^20240806git39e2663
- Add `static inline` to `PyUnicodeWriter_WriteStr()` and
`PyUnicodeWriter_WriteRepr()`.
* Thu Jul 18 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240718git4094c64-1
- Update to 0^20240718git4094c64
- Add PyUnicodeWriter API
* Mon Jul 08 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240708gitea1f7f6-1
- Update to 0^20240708gitea1f7f6
- `PyLong_GetSign` will be added in 3.14.0a0
* Wed Jun 05 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 0^20240603git18d1df7-1
- Update to 0^20240603git18d1df7: Add `PyLong_GetSign()`.
* Thu May 23 2024 Benjamin A. Beasley <co